package cc.zzone;

import cc.zzone.bean.ServerInfo;
import cc.zzone.bean.SocketFactory;
import cc.zzone.bean.ChatWebsocketServer;
import cc.zzone.domain.PlatformData;
import cc.zzone.util.StartUtil;
import jakarta.annotation.PostConstruct;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@Slf4j
@SpringBootApplication
public class App {

    public static void main(String[] args) {
        StartUtil.run(App.class, args);

        // 校验平台数据
        // 当前平台支持 【B站，斗鱼】
        PlatformData data = new PlatformData();
        PlatformData bili = PlatformData.mapper().getData("BILI");
        if (bili == null || !"哔哩哔哩".equals(bili.getName())) {
            data.setId("BILI");
            data.setName("哔哩哔哩");
            if (bili == null) PlatformData.mapper().insertData(data);
            else PlatformData.mapper().updateData(data);
        }
        PlatformData dy = PlatformData.mapper().getData("DY");
        if (dy == null || !"斗鱼TV".equals(dy.getName())) {
            data.setId("DY");
            data.setName("斗鱼TV");
            if (dy == null) PlatformData.mapper().insertData(data);
            else PlatformData.mapper().updateData(data);
        }
    }

    @PostConstruct
    void websocket() {
        ServerInfo serverInfo = new ChatWebsocketServer("/sub");
        serverInfo.setPort(20100); // 端口
        serverInfo.setReaderIdleTime(0L); // 心跳超时时间
        SocketFactory.build(serverInfo); // 启动 socket 服务
    }
}